/*
	include all synchronize header files
	and define Marco and types by compile flag

	@author : Wolfhead
 */
#ifndef ACAPELLA_SYNHRONIZE_SYNCHRONIZE_H
#define ACAPELLA_SYNHRONIZE_SYNCHRONIZE_H


#include "spin_lock.h"
#include "mutex_cond.h"
#include "rw_lock.h"
#include "semaphore.h"
#include "scoped_lock.hpp"

namespace acapella
{
namespace synchronize
{
namespace _default_
{


#ifdef ACAPELLA_USE_THREAD
	typedef acapella::synchronize::spin_lock spin_lock;
	typedef acapella::synchronize::mutex_cond mutex_cond;
	typedef acapella::synchronize::rw_lock rw_lcok;
	typedef acapella::synchronize::semaphore semaphore;
#else
	typedef acapella::synchronize::null_spin_lock spin_lock;
	typedef acapella::synchronize::null_mutex_cond mutex_cond;
	typedef acapella::synchronize::null_rw_lock rw_lcok;
	typedef acapella::synchronize::null_semaphore semaphore;
#endif

} // namespace default
} // namespace synchronize
} // namespace acapella


#endif
